﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Agriculture.Domain
{
    /// <summary>
    /// 问诊订单实体
    /// </summary>
    public class ConsultationOrderModel : OrderModel
    {
        /// <summary>
        /// 患者id
        /// </summary>
        public int PatientId { get; set; }

        /// <summary>
        /// 病情描述
        /// </summary>
        public string? DiseaseDescription { get; set; }

        /// <summary>
        /// 既往病史
        /// </summary>
        public string? MedicalSituation { get; set; }

        /// <summary>
        /// 问诊类型（图文问诊/视频问诊/电话问诊）
        /// </summary>
        public int ConsultationType { get; set; }
        
        /// <summary>
        /// 问诊来源
        /// </summary>
        public int ConsultationSource { get; set; }
        
        /// <summary>
        /// 问诊状态
        /// </summary>
        public int ConsultationStatus { get; set; }
        
        /// <summary>
        /// 问诊费用
        /// </summary>
        public decimal ConsultationFee { get; set; }

        /// <summary>
        /// 预约时间
        /// </summary>
        public DateTime? AppointmentTime { get; set; }

        /// <summary>
        /// 提交时间
        /// </summary>
        public DateTime SubmitTime { get; set; }

        /// <summary>
        /// 接诊时间
        /// </summary>
        public DateTime? ConsultationTime { get; set; }

        /// <summary>
        /// 通话时长（分钟）
        /// </summary>
        public int? CallDuration { get; set; }

        /// <summary>
        /// 患者评分
        /// </summary>
        public int? PatientRating { get; set; }

        /// <summary>
        /// 患者评价
        /// </summary>
        public string? PatientComment { get; set; }

        /// <summary>
        /// 退诊原因
        /// </summary>
        public string? RefundReason { get; set; }

        /// <summary>
        /// 退款金额
        /// </summary>
        public decimal? RefundAmount { get; set; }
        
        /// <summary>
        /// 关联信息ID
        /// </summary>
        public int? ConsultationInfoId { get; set; }
        
        /// <summary>
        /// 医生ID
        /// </summary>
        public int DoctorId { get; set; }
        
        // 导航属性
        public virtual PatientModel Patient { get; set; }
        public virtual DoctorModel Doctor { get; set; }
        public virtual ConsultationInfoModel ConsultationInfo { get; set; }
    }
}
